package com.zust513.service;

import com.zust513.dto.CourierDTO;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

/**
 * 配送员服务接口
 */
public interface CourierService {

    /**
     * 获取所有配送员列表
     * @return 配送员DTO列表
     */
    List<CourierDTO> getAllCouriers();

    /**
     * 根据ID获取配送员详情
     * @param courierId 配送员ID
     * @return 配送员DTO
     */
    CourierDTO getCourierById(Integer courierId);

    /**
     * 更新配送员审核状态
     * @param courierId 配送员ID
     * @param status 审核状态
     * @return 是否更新成功
     */
    boolean updateCourierAuditStatus(Integer courierId, String status);

    /**
     * 按时间和地点查询配送订单
     * @param regionId 区域ID
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 订单列表
     */
    List<Map<String, Object>> getOrdersByRegionAndTime(Integer regionId, LocalDateTime startTime, LocalDateTime endTime);

    /**
     * 查询用户订单
     * @param userId 用户ID
     * @return 订单列表
     */
    List<Map<String, Object>> getUserOrders(Integer userId);

    /**
     * 获取配送员总数
     * @return 配送员总数
     */
    Integer getTotalCouriersCount();
}
